package com.ruoyi.db.domain.system;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 众筹活动对象 pc_raise
 * 
 * @author ruoyi
 * @date 2022-08-03
 */
@ApiModel(value = "PcRaise",description = "众筹活动对象 pc_raise")
public class PcRaise extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 众筹活动主键ID */
    private Long id;

    /** 活动名称 */
    @ApiModelProperty(value="活动名称",name="PcRaise$raiseName")
    @Excel(name = "活动名称")
    private String raiseName;

    /** 开始时间 */
    @ApiModelProperty(value="开始时间",name="PcRaise$startTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 活动持续的小时数 */
    @ApiModelProperty(value="活动持续的小时数",name="PcRaise$continueTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动持续的小时数", width = 30, dateFormat = "yyyy-MM-dd")
    private Date continueTime;

    /** 收益比例 */
    @ApiModelProperty(value="收益比例",name="PcRaise$earnRate")
    @Excel(name = "收益比例")
    private BigDecimal earnRate;

    /** 最小参与金额 */
    @ApiModelProperty(value="最小参与金额",name="PcRaise$minTakeAmount")
    @Excel(name = "最小参与金额")
    private BigDecimal minTakeAmount;

    /** 最大参与金额 */
    @ApiModelProperty(value="最大参与金额",name="PcRaise$maxTakeAmount")
    @Excel(name = "最大参与金额")
    private BigDecimal maxTakeAmount;

    /** 活动可预约的小时数 */
    @ApiModelProperty(value="活动可预约的小时数",name="PcRaise$orderTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动可预约的小时数", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 活动目标金额 */
    @ApiModelProperty(value="活动目标金额",name="PcRaise$totalAmount")
    @Excel(name = "活动目标金额")
    private BigDecimal totalAmount;

    /** 是否成功 */
    @ApiModelProperty(value="是否成功",name="PcRaise$isSuccess")
    @Excel(name = "是否成功")
    private Integer isSuccess;

    /** 成功时间 */
    @ApiModelProperty(value="成功时间",name="PcRaise$successTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "成功时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date successTime;

    @ApiModelProperty(value="优先预约时间节点",name="PcRaise$firstOrderTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "优先预约时间节点", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstOrderTime;

    /** 是否成功 */
    @ApiModelProperty(value="是否失效,1是(上n期活动失败，本次活动自动失效)",name="PcRaise$isAble")
    @Excel(name = "是否失效,1是(上n期活动失败，本次活动自动失效)")
    private Integer isAble;

    @ApiModelProperty(value="是否结束,1是",name="PcRaise$isOver")
    @Excel(name = "是否结束,1是(上n期活动失败，本次活动自动失效)")
    private Integer isOver;

    @ApiModelProperty(value="轮回数",name="PcRaise$runCount")
    @Excel(name = "轮回数")
    private Long runCount;

    public BigDecimal getTakeRate() {
        return takeRate;
    }

    public void setTakeRate(BigDecimal takeRate) {
        this.takeRate = takeRate;
    }

    public Integer getRaiseStatus() {
        return raiseStatus;
    }

    public void setRaiseStatus(Integer raiseStatus) {
        this.raiseStatus = raiseStatus;
    }

    private BigDecimal takeRate;
    private Integer raiseStatus;
    private BigDecimal takeAmount;
    private BigDecimal orderAmount;

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getTakeAmount() {
        return takeAmount;
    }

    public void setTakeAmount(BigDecimal takeAmount) {
        this.takeAmount = takeAmount;
    }

    public Long getRunCount() {
        return runCount;
    }

    public void setRunCount(Long runCount) {
        this.runCount = runCount;
    }

    public Long getListCount() {
        return listCount;
    }

    public void setListCount(Long listCount) {
        this.listCount = listCount;
    }

    @ApiModelProperty(value="期数",name="PcRaise$listCount")
    @Excel(name = "期数")
    private Long listCount;

    public Boolean getIsStart() {
        return isStart;
    }

    public void setIsStart(Boolean start) {
        isStart = start;
    }

    private Boolean isStart;

    public Integer getIsOver() {
        return isOver;
    }

    public void setIsOver(Integer isOver) {
        this.isOver = isOver;
    }

    public Integer getIsAble() {
        return isAble;
    }

    public void setIsAble(Integer isAble) {
        this.isAble = isAble;
    }

    public Date getFirstOrderTime() {
        return firstOrderTime;
    }

    public void setFirstOrderTime(Date firstOrderTime) {
        this.firstOrderTime = firstOrderTime;
    }

    public Long getRaiseType() {
        return raiseType;
    }

    public void setRaiseType(Long raiseType) {
        this.raiseType = raiseType;
    }

    /** 活动类别 */
    @ApiModelProperty(value="活动类别",name="PcRaise$raiseType")
    @Excel(name = "活动类别。1活动1，2 活动2")
    private Long raiseType;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setRaiseName(String raiseName) 
    {
        this.raiseName = raiseName;
    }

    public String getRaiseName() 
    {
        return raiseName;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setContinueTime(Date continueTime) 
    {
        this.continueTime = continueTime;
    }

    public Date getContinueTime() 
    {
        return continueTime;
    }
    public void setEarnRate(BigDecimal earnRate) 
    {
        this.earnRate = earnRate;
    }

    public BigDecimal getEarnRate() 
    {
        return earnRate;
    }
    public void setMinTakeAmount(BigDecimal minTakeAmount) 
    {
        this.minTakeAmount = minTakeAmount;
    }

    public BigDecimal getMinTakeAmount() 
    {
        return minTakeAmount;
    }
    public void setMaxTakeAmount(BigDecimal maxTakeAmount) 
    {
        this.maxTakeAmount = maxTakeAmount;
    }

    public BigDecimal getMaxTakeAmount() 
    {
        return maxTakeAmount;
    }
    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }
    public void setTotalAmount(BigDecimal totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount()
    {
        return totalAmount;
    }
    public void setIsSuccess(Integer isSuccess) 
    {
        this.isSuccess = isSuccess;
    }

    public Integer getIsSuccess() 
    {
        return isSuccess;
    }
    public void setSuccessTime(Date successTime) 
    {
        this.successTime = successTime;
    }

    public Date getSuccessTime() 
    {
        return successTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("raiseName", getRaiseName())
            .append("startTime", getStartTime())
            .append("continueTime", getContinueTime())
            .append("earnRate", getEarnRate())
            .append("minTakeAmount", getMinTakeAmount())
            .append("maxTakeAmount", getMaxTakeAmount())
            .append("orderTime", getOrderTime())
            .append("createTime", getCreateTime())
            .append("totalAmount", getTotalAmount())
            .append("isSuccess", getIsSuccess())
            .append("successTime", getSuccessTime())
            .toString();
    }
}
